Color display and printing have improved in recent years to the point where photo-realistic color images and complex color graphics are now commonly used not only in desktop publishing, but also across a broad spectrum of data and presentation applications. The increased use of color content in all forms of digital communication necessitates the implementation of a color management scheme for differing operating systems, such as the Windows® operating systems by the Microsoft Corporation. The color management scheme that is used by Windows 98, Windows 2000, Windows XP, and other operating systems from Microsoft® is called Image Color Management (ICM) 2.0. The color management scheme that is used by Microsoft Vista operating system is called the Microsoft Windows Color System (WCS). The Microsoft Windows Color System color management scheme is a superset of Image Color Management 2.0 APIs and functionality.
The Microsoft Windows Color System is a platform for color management exclusive to Windows Vista that strives to achieve color consistency across various software and hardware, including cameras, monitors, printers and scanners. Different devices interpret the same colors differently, according to their software and hardware configurations. As a result, they must be properly calibrated to reproduce colors consistently across different devices. WCS makes this process of color calibration automatic and transparent, as an evolution of International Color Consortium (ICC) Color Profiles.
The Microsoft Windows Color System (WCS) technology ensures that a color image, graphic or text object is rendered as close as possible to its original intent on any device, despite differences in imaging technologies and color capabilities between devices. The colors must remain consistent and accurate whether one is scanning an image or other graphic on a color scanner, downloading over the Internet, viewing or editing on a screen, or outputting to paper, film, or other media. WCS has some modules that are replaceable by plug-ins, for example the gamut map model and the device model.
The color processing pipeline allows device developers to add their own gamut mapping algorithm into the pipeline to customize the color response of the device. Using the color profiles, the Color Infrastructure and Translation Engine (CITE) and the plug-in extensions, a color transform is created. The CITE then applies the color transform to input image content to create output content appropriate for the output device.
Obtaining predictable color reproduction in the digital darkroom can be a challenge because each device—digital camera, scanner, monitor, or printer—responds to or produces color differently. If one limits operations to well-characterized equipment and follows the procedures outlined in monitor calibration and printer calibration, reasonably good results can be obtained without color management. The operating system performs a certain amount covertly, in the background. It may also be desirable to improve the color match between a monitor and printer. To meet these goals one needs to get involved with the set of software packages and procedures known as color management and profiles.
Profiles consist primarily of tables that relate numeric data, for example, RGB (222, 34, 12), to colors expressed in a device-independent CIE color space called a Profile Connection Space (PCS)—either CIE-XYZ or CIELAB. CIE stands for the International Commission on Illumination (CIE for its French name Commission Internationale de I'Eclairage) which is a recognized international authority on light, illumination, color, and color spaces. The colors may be the objects sensed by a scanner or produced by a printer or monitor. They can also refer to one of the numerous color spaces. Monitor profiles have the same format as color space profiles. Profiles may contain additional data, such as a preferred rendering intent and gamma. Monitor profiles often contain instructions for loading video card lookup tables, i.e., for calibrating the monitor.
The heart of color management is often the translation or gamut mapping between devices with different color gamuts and files with different color spaces. Mapping functions are typically performed by a Color Matching Module (CMM), also called a Color Engine, using data in the profiles. One application such as Picture Window Pro, for example, uses either the Windows default color engine, ICM 2.0, or an alternative engine, LittleCMS. Adobe Photoshop has its own color engine, known as ACE. Color engine mappings may be called from ICM-aware programs or device drivers. One must be aware of where the color translation takes place in a particular environment. In some instances, mapping can take place twice (or not at all) producing undesirable results. The CMM combines the input and output profiles to perform a direct conversion between the devices or color spaces. It interpolates data in printer profile tables which would be prohibitively large if all possible color values were included.
Gamut mapping is usually performed with one of the four rendering intents (gamut mapping algorithms) recognized by the International Color Consortium (ICC) standard. The gamut mapping algorithm determines how colors are handled that are present in the source device but out of gamut in the destination device. Since different devices don't have the same gamut, they need some rearrangement. This may be particularly the case near the borders of the gamut. Some colors need to be shifted to the inside of the gamut as they otherwise cannot be represented on the output device and would simply be clipped. For instance, to print a mostly saturated blue from a monitor to paper with a typical CMYK printer, will likely produce undesirable results because the paper blue may not be that saturated. Conversely, the bright cyan of an inkjet printer may not be easily represented on a monitor. The color management system often utilizes various methods to achieve desirable results. Some systems give users control of the gamut mapping behavior.
Color management systems use increasingly sophisticated algorithms for color mapping. However, as these algorithms get more complicated, processing time tends to increase accordingly. Increased processing time can degrade overall performance where speed is important.
Accordingly, what is needed in this art are increasingly sophisticated applications and advanced methodologies for color management systems which improve performance while increasing efficiency in the color transformation process.